Presenting information for a current location or time

ABSTRACT

A computing system is described that obtains, based at least in part on information included in at least one previous communication associated with a user of a computing device, an indication of a future location and a future time and event information associated with the future location and the future time. The computing system obtains a duration of time for the user to travel from a current location of the computing device to the future location, and, based at least in part on the duration of time, obtains a departure time at which the user is predicted to need to depart from the current location in order to arrive at the future location by an arrival time based on the event. The computing system outputs, for transmission to the computing device, an indication associated with the event and including information indicative of the departure time.

BACKGROUND

A mobile computing device (e.g., a mobile phone, tablet computer, etc.)may function as a personal digital assistant (PDA), a phone, a camera,an e-mail client, an Internet browser, and a global positioning system(GPS) navigation device. The mobile computing device may be used tosearch for information about an upcoming airline flight, nearbyattractions (such as shows, events, and concerts), nearby real estatelistings, local movie times, etc. A user may search within thisinformation (e.g., using such a mobile computing device) on theInternet, within e-mail accounts, and within other informationrepositories stored locally or accessible by the mobile computingdevice. Finding a particular piece of information within all this datacan be daunting and time consuming, however.

SUMMARY

In one example, the disclosure is directed to a method that includesobtaining, by a computing system and based at least in part oninformation included in at least one previous communication associatedwith a user of a computing device, an indication of a future locationand a future time, and obtaining, by the computing system, informationassociated with an event, the event being associated with the futurelocation and the future time. The method further includes obtaining, bythe computing system, a duration of time for the user of the computingdevice to travel from a current location of the computing device to thefuture location, and obtaining, by the computing system, based at leastin part on the duration of time, a departure time at which the user ofthe computing device is predicted to need to depart from the currentlocation of the computing device in order to arrive at the futurelocation by an arrival time, the arrival time being determined based atleast in part on the event. The method further includes outputting, bythe computing system, for transmission to the computing device, anindication associated with the event, the indication includinginformation indicative of the departure time.

In another example, the disclosure is directed to a computing systemthat includes a at least one processor and at least one module operableby the at least one processor to obtain, based at least in part oninformation included in at least one previous communication associatedwith a user of a computing device, an indication of a future locationand a future time, and obtain information associated with an event, theevent being associated with the future location and the future time. Theat least one module is further operable by the at least one processor toobtain a duration of time for the user of the computing device to travelfrom a current location of the computing device to the future location,and obtain, based at least in part on the duration of time, a departuretime at which the user of the computing device is predicted to need todepart from the current location of the computing device in order toarrive at the future location by an arrival time, the arrival time beingdetermined based at least in part on the event. The at least one moduleis further operable by the at least one processor to output, fortransmission to the computing device, an indication associated with theevent, the indication including information indicative of the departuretime.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages of the disclosure will be apparent from the description anddrawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example computing systemthat is configured to present information relevant to a particular timeand location of the computing system, in accordance with one or moreaspects of the present disclosure.

FIG. 2 is a block diagram illustrating an example computing deviceconfigured to present information relevant to a particular time andlocation of the computing device, in accordance with one or more aspectsof the present disclosure.

FIG. 3 is a block diagram illustrating an example computing device thatoutputs graphical content for display at a remote device, in accordancewith one or more techniques of the present disclosure.

FIG. 4, FIG. 5, and FIG. 6 are conceptual diagrams illustrating examplegraphical user interfaces for presenting information relevant to aparticular time and location of the computing device, in accordance withone or more aspects of the present disclosure.

FIG. 7 is a flowchart illustrating an example operation of the computingdevice, in accordance with one or more aspects of the presentdisclosure.

FIG. 8 is a flowchart illustrating further example operations of thecomputing device in accordance with one or more aspects of the presentdisclosure.

DETAILED DESCRIPTION

In general, techniques of this disclosure may enable a computing deviceto present graphical indications associated with information (alsoreferred herein as “data”) obtained from previously-receivedcommunications that include references to one or more future locations,future times, future activities, and/or future events associated with afuture location and/or future time. The computing device may customizethe graphical indication to a specific activity that occurs at one ormore future location and/or future time.

The computing device may present the graphical indications as one ormore cards of information within a graphical user interface (GUI). Insome examples, the graphical indication may be a notification, an alert,or other type of graphical and/or audible indication the computingdevice may output for alerting a user about information that may berelevant to a current time and/or a current location, such as event andactivity information.

The computing device may present information cards of varying types andcategories (e.g., the information may depend on the specific activitythat a user may perform at the future location and/or the future time).Some examples of the types of information cards may includeflight-related information, attraction-related information (e.g., movieand event information), real estate listing information,financial/stock-related information, package-tracking information,weather information, transportation/transit-related information, andother types of information. Rather than require a user to search for aparticular piece of information, the computing device can outputpredicted information that the user would otherwise search for andinclude the predicted information within, for example, one or moreinformation cards.

The computing device may analyze previous communications only if thecomputing device receives permission from the user to analyze theinformation. For example, in situations discussed below in which thecomputing device may collect or may make use of personal informationabout the user (e.g., from previous communications) the user may beprovided with an opportunity to control whether programs or features ofthe computing device can collect user information (e.g., informationabout a user's e-mail, a user's social network, social actions oractivities, profession, a user's preferences, or a user's currentlocation), or to control whether and/or how to the computing device mayreceive content that may be relevant to the user. In addition, certaindata may be treated in one or more ways before it is stored or used bythe computing device, so that personally identifiable information isremoved. For example, a user's identity may be treated so that nopersonally identifiable information can be determined about the user, ora user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by the computing device.

FIG. 1 is a conceptual diagram illustrating computing system 1 that isconfigured to present information relevant to a particular time andlocation of the computing system 1, in accordance with one or moreaspects of the present disclosure. In the example of FIG. 1, computingsystem 1 includes computing device 10, information server system 60, andnetwork 66.

Network 66 of computing system 1 represents any public or privatecommunication network, for instance, a cellular, Wi-Fi, and/or othertype of network for transmitting data between computing devices.Computing device 10 and information server system 60 may send andreceive data across network 66 using any suitable communicationtechniques. For example, computing device 10 may be operatively coupledto network 66 using network link 68A. Information server system 60 maybe operatively coupled to network 66 by network link 68B. Network 66 mayinclude network hubs, network switches, network routers, etc., that areoperatively inter-coupled thereby providing for the exchange ofinformation between computing device 10 and information server system60. In some examples, network links 68A and 68B may be Ethernet, ATM orother network connections. Such connections may be wireless and/or wiredconnections.

Information server system 60 of system 1 represents any suitable remotecomputing system, such as one or more desktop computers, laptopcomputers, mainframes, servers, cloud computing systems, etc. capable ofsending and receiving information across network link 68B to network 66.In some examples, information server system 60 represents a cloudcomputing system that provides one or more services through network 66.One or more computing devices, such as computing device 10, may accessthe one or more services provided by the cloud using information serversystem 60. For example, computing device 10 may store and/or access datain the cloud using information server system 60.

Information server system 60 includes information retrieval module 62,communication data store 64A and navigation data store 64B. Informationretrieval module 62 may perform operations described using software,hardware, firmware, or a mixture of hardware, software, and firmwareresiding in and/or executing at Information server system 60.Information server system 60 may execute information retrieval module 62with multiple processors or multiple devices. Information server system60 may execute information retrieval module 62 as a virtual machineexecuting on underlying hardware. Information retrieval module 62 mayexecute as a service of an operating system or computing platform.Information retrieval module 62 may execute as one or more executableprograms at an application layer of a computing platform.

Data stores 64A and 64B represent any suitable storage medium forstoring data related to communications and navigation. For example, datastore 64A may store communications information such as one or morepreviously received e-mail communications, text message communications,and the like. The communications information may be organized withindata store 64A according to account names or addresses. Informationserver system 60 may access the data within data store 64A, forinstance, by looking up an e-mail account address and obtaining one ormore e-mail communications associated with the e-mail account. Datastores 64B may store navigation information such as, digital maps,navigation durations, navigation directions, and the like. Informationserver system 60 may provide access to the data stored at data stores64A and 64B as a cloud based data access service to devices connected tonetwork 66, such as computing device 10.

Information retrieval module 62 may perform functions for responding toinformation requests from computing device 10 related to the data storedin data stores 64A and 64B and other data stored remote to informationserver system 60 (e.g., data on the Internet). For instance, informationretrieval module 62 may receive a request from computing device 10 vianetwork link 68B for an estimated duration of time (e.g., a trip timefor an expected travel route) to walk from one geographical location toanother. Information retrieval module 62 may access data within datastore 64B and/or data on the Internet or otherwise stored remotely toinformation server system 60 to provide information in response to therequest by sending the information to computing device 10, via networklink 68B and through network 66. For instance, information retrievalmodule 62 may obtain traffic conditions along a route of travel from acurrent location to a future location and based on the trafficconditions, determine the duration of time to travel the route.

In the example of FIG. 1, computing device 10 may be a mobile computingdevice, such as a mobile phone, a tablet computer, a personal digitalassistant (PDA), a laptop computer, a portable gaming device, a portablemedia player, an e-book reader, a watch, a television platform, anautomobile navigation system, a wearable computing platform, or anyother type of computing device. As shown in FIG. 1, computing device 10includes a user interface device (UID) 12. UID 12 of computing device 10may function as an input device for computing device 10 and as an outputdevice. UID 12 may be implemented using various technologies. Forinstance, UID 12 may function as a graphical input device using apresence-sensitive input display, such as a resistive touchscreen, asurface acoustic wave touchscreen, a capacitive touchscreen, aprojective capacitance touchscreen, a pressure sensitive screen, anacoustic pulse recognition touchscreen, or another presence-sensitivedisplay technology. UID 12 may further function as an audio inputdevice, such as a microphone. UID 12 may function as a graphical output(e.g., display) device using any one or more display devices, such as aliquid crystal display (LCD), dot matrix display, light emitting diode(LED) display, organic light-emitting diode (OLED) display, e-ink, orsimilar monochrome or color display capable of outputting visibleinformation to the user of computing device 10. UID 12 may function asan audible output device such as a speaker for outputting instructionsassociated with an audio-based user interface.

UID 12 of computing device 10 may include a presence-sensitive displaythat may receive tactile input from a user of computing device 10. UID12 may receive indications of the tactile input by detecting one or moregestures from a user of computing device 10 (e.g., the user touching orpointing to one or more locations of UID 12 with a finger or a styluspen). UID 12 may present output to a user, for instance at apresence-sensitive display. UID 12 may present the output as a graphicaluser interface (e.g., user interface 14) which may be associated withfunctionality provided by computing device 10. For example, UID 12 maypresent various user interfaces of applications executing at oraccessible by computing device 10 (e.g., an electronic messageapplication, a navigation application, an Internet browser application,etc.). A user may interact with a respective user interface of anapplication to cause computing device 10 to perform operations relatingto a function.

Computing device 10 may include user interface (“UI”) module 20, devicelocation module 22, user data analysis module 24, and suggestion module26. Modules 20, 22, 24, and 26 may perform operations described usingsoftware, hardware, firmware, or a mixture of hardware, software, andfirmware residing in and/or executing at computing device 10. Computingdevice 10 may execute modules 20, 22, 24, and 26 with multipleprocessors. Computing device 10 may execute modules 20, 22, 24, and 26as a virtual machine executing on underlying hardware. Modules 20, 22,24, and 26 may execute as one or more services of an operating system, acomputing platform. Modules 20, 22, 24, and 26 may execute as one ormore remote computing services, such as one or more services provided bya cloud and/or cluster based computing system. Modules 20, 22, 24, and26 may execute as one or more executable programs at an applicationlayer of a computing platform.

UI module 20 may cause UID 12 to present user interface 14. Userinterface 14 includes graphical indications (e.g., elements) displayedat various locations of UID 12. FIG. 1 illustrates information card 16(“card 16”) as one example graphical indication within user interface14. As described in more detail below, card 16 includes informationrelevant to a particular time and location of computing device 10. UImodule 20 may receive information from suggestion module 26, forinstance, when computing device 10 obtains an indication that thecurrent location of computing device 10 corresponds to a future locationassociated with previous communications. In response to the informationfrom suggestion module 26, UI module 20 may cause UID 12 to output, fordisplay, card 16 within user interface 14. In some examples, rather thancause UID 12 to output a graphical user interface, such as card 16within user interface 14, UI module 20 may cause UID 12 to output anaudio based user interface that outputs audio based on the informationwithin card 16 and user interface 14.

Device location module 22 may determine a current location of computingdevice 10 and a current time. For example, computing device 10 mayreceive signal data from one or more radios of computing device 10(e.g., global positioning system (GPS) radio, cellular radio, Wi-Firadio, and the like) and based on the signal data, determine the currenttime and the current location of computing device 10. In some examples,device location module 22 may determine a relative location and/ordetermine a current location based on signal triangulation (e.g., atechnique for determining a single location based on relative positiondata received from two or more signals). In some examples, devicelocation module 22 may determine location data as coordinate (e.g., GPS)location data. In other examples, device location module 22 maydetermine a location as one or more general or relative locations, suchas an address, a place, a country, a city, a type of building (e.g., alibrary, an airport, etc.), a business, etc.

In some examples, device location module 22 may obtain the currentlocation of computing device 10 and/or the current time from informationserver system 60 via network 66. For instance, in response to a Wi-Finetwork identifier received from device location module 22, informationserver system 60 may send GPS coordinates of computing device 10 todevice location module 22. Device location module 22 may output locationand time data to other modules of computing device 10 such as suggestionmodule 26.

User data analysis (UDA) module 24 of computing device 10 may tag orclassify portions of information associated with previous communicationsand/or other data with a marker that indicates whether the portion ofinformation corresponds to a location, a time, an activity, an event,etc. UDA module 24 may format the portions of information for laterinclusion as graphical content within a graphical indication associatedwith an activity and/or event. In other words, UDA module 24 mayclassify or tag information by at least applying one or more locationtags and one or more time tags to the information. UDA module 24 mayobtain indications of future locations, future times, activities, andfuture events associated that are each associated with informationincluded in previous communications (e.g., e-mail messages, text-basedmessages, voicemails, social media posts, Internet search queries,application interactions, webpage history, etc.) and/or other datareceived by computing device 10. For example, UDA module 24 may rely ondata mining techniques and parse textual data contained withinpreviously received communications to isolate words and/or phrases thatindicate future locations, future times of day, activities, and futureevents that may be of interest to a user of computing device 10. Theprevious communications may be stored locally at computing device 10and/or remotely at information server system 60. Likewise, the datamining techniques may be performed locally at computing device 10 by UDAmodule 24 and/or performed by information server system 60 andaccessible to UDA module 24 through an application programming interfaceto a remote computing based service (e.g., in a cloud).

The data mining techniques performed or accessed by UDA module 24 mayresult in the tagging or classifying of portions of information includedin the previous communications with pointers (e.g., tags) to mark thoseportions that indicate future locations, future times of day,activities, and future events. Other modules of computing device 10,such as suggestion module 26, can later retrieve the tagged orclassified portions of information by retrieving the data pointed to bythe tags. The other modules may further search for location and/or timetags associated with portions of communication information thatcorrespond to a current location of computing device 10, a current timeof day, an activity, and/or an event to determine which portions ofcommunication information may be relevant to the current location, thecurrent time, the activity, and/or event.

To track relationships between portions of the previously receivedcommunications, the data mining techniques performed and/or accessed byUDA module 24 may generate links between related location, time,activity and event tags. That is, a time and/or location tagcorresponding to one portion of communication data may link to anactivity tag of other related portions of communication data.

UDA module 24 may format and categorize the tagged or classifiedportions of information within the communication data. Other modules ofcomputing device 10, such as suggestion module 26, may utilize theformatted portions of information within different categories ofgraphical indications, such as one or more categories of informationcards (e.g., card 16). For example, computing device 10 may presentdifferent categories of information cards that relate to differentactivities, events, etc. that the user may perform at a future locationand/or at a future time. Examples of information card categories (e.g.,events and activities) may include information cards related toelectronic tickets (e-tickets), movie show times/events/attractions,transportation and/or travel information (e.g., flight information),package tracking, real estate, etc. UDA module 24 may format the taggedor classified portions of communication data into a format that canlater be retrieved by suggestion module 26 and incorporated intodifferent fields of information cards.

For example, UDA module 24 and/or information server 60 may associateone or more fields of information cards with each category ofinformation card that relates to an activity performed at a futurelocation and/or a future time. A flight information card may includefields that identify a date, a time, an airport, a flight number, apassenger name, etc. of a flight that a user may board at a future time.A movie show time card may include fields of information that indicatewhen and where a movie is playing at a particular theatre that a usermay attend at a future time. A package tracking card may include fieldsof information that indicate a package tracking number, an estimateddelivery date and time, etc. of a package that a user may receive at afuture time. Other information cards may include other fields specificto that category (e.g., activity) of information card (e.g. real estatecards, event cards, attraction cards, other package tracking cards,etc.) that relate to activities associated with the user at a futurelocation and/or a future time. UDA module 24 and/or information server60 may data mine, tag, and format the portions of previouscommunications (e.g., an e-mail confirming a ticket purchase, a packagetracking e-mail, browsing histories, webpage data, and third partyapplication data of applications executing at computing device 10).Other modules of computing device 10, such as suggestion module 26, maysearch the tags and retrieve the formatted portions of information inone or more fields of an information card.

Computing system 1, including information server 60 and computing device10, may analyze previous communications and other data only if computingdevice 10 receives permission from the user to analyze the information.For example, in situations in which computing system 1 may collect, datamine, analyze and/or otherwise make use of personal information aboutthe user the user may be provided with an opportunity to control whetherprograms or features of computing system 1 can collect user information(e.g., previous communications, information about a user's e-mail, auser's social network, social actions or activities, profession, auser's preferences, or a user's current location), or to control whetherand/or how to computing system 1 may receive content that may berelevant to the user. In addition, certain data may be treated in one ormore ways before it is stored or used by computing system 1, so thatpersonally identifiable information is removed. For example, a user'sidentity may be treated so that no personally identifiable informationcan be determined about the user, or a user's current location may begeneralized where location information is obtained (such as to a city,ZIP code, or state level), so that a particular location of a usercannot be determined. Thus, the user may have control over howinformation is collected about the user and used by computing system 1.

Suggestion module 26 of computing device 10 may manage requests, from auser or an application executing at computing device 10, to displaygraphical indications of information that may be of interest to the userat a particular time and/or when the current location of computingdevice 10 corresponds to a particular place. For example, in response toan indication of an input detected at UID 12 and received by UI module20, suggestion module 26 may cause UI module 20 to output graphicalindications of information cards for display at UID 12 within userinterface 14. Likewise, suggestion module 26 may automatically (e.g.,without user intervention) cause UI module 20 to present graphicalindications of information cards at UID 12 when the current time and/orcurrent location of computing device 10 corresponds to a particular timeand/or place. In some examples, rather than cause UID 12 to output agraphical user interface, such as user interface 14, UI module 20 maycause UID 12 to output an audio based user interface that includesaudible information associated with the information within informationcards.

A graphical indication of information may include the formatted andtagged or classified portions of previous communications associated witha user of computing device 10 and/or received by computing device 10.The graphical indication of information may further include otherinformation that may not be explicitly included in the previouscommunications, but is related to the information contained in theprevious communications. For instance, while the previous communicationsmay include indications of future locations, times, activities, and/orevents, suggestion module 26 may include other accessible data (e.g.,credentials, navigation directions, predicted time of travel durations,Internet accessible content, and the like) related to the informationcontained in the previous communications.

Whether suggestion module 26 is invoked automatically by computingdevice 10 or in response to user interaction, suggestion module 26 maydetermine whether the current location of computing device 10 and/or thecurrent time corresponds to any of the tags associated with the taggedor classified portions of communication data identified by UDA module24. In other words, suggestion module 26 may search previouscommunications for one or more portions of information which have timeand/or location tags which may be relevant to the current location ofcomputing device 10 and/or the current time of day.

Suggestion module 26 may compare location and time data obtained fromdevice location module 22 to the location and time values of thelocation and time tags associated with the formatted communication dataobtained by UDA module 24. Based on the comparison to the values of thetags, suggestion module 26 may identify portions of tagged or classifiedcommunication data that may be of interest to the user at the currenttime and/or the current location. In other words, suggestion module 26may obtain an indication of the future location and the future time bydetermining that a location value of at least one of the one or morelocation tags is associated with the current location and that a timevalue of at least one of the one or more time tags is associated withthe current time.

For example, suggestion module 26 may parse the tagged or classifiedcommunication data for one or more location and/or time tags that matchthe current location of computing device 10 and/or the current time. Insome examples, matching location and time tags may, respectively,identify locations and times that are within a threshold distance and/ora threshold amount of time from the current location of computing device10 and/or the current time. In some examples, identifying matching tagsmay include determining matching categories of information, such as anactivity and/or event tags, that link to the matching time and/orlocation tags. In other words, suggestion module 26 may determine thatthe location value of at least one of the one or more location tags isassociated with the current location and that the time value of at leastone of the one or more time tags is associated with the current time byobtaining an indication that the location value is within a thresholddistance of the current location and that the time value is within athreshold time of the current time.

Suggestion module 26 may include the formatted portions of communicationinformation associated with the matching tags within fields ofinformation cards. Suggestion module 26 may transmit and cause UI module20 to present one or more graphical indications of the information cardsat UID 12 within user interface 14.

In some examples, suggestion module 26 may obtain other informationrelated to the portions of communication information that have matchingtags. Suggestion module 26 may include the other information within thefields of the information cards presented at UID 12. The otherinformation may be stored locally at computing device 10 and/or providedby information server system 60. The other information may includeinformation related to the category or activity associated with theinformation card that suggestion module 26 causes UI module 20 topresent at UID 12, such as navigation category/activity, entertainmentcategory/activity, real estate category/activity, commercialtransportation category/activity, etc. The other information related tothe category/activity may be information obtained from the Internet andrelated to an activity and/or event associated with the informationcards.

Suggestion module 26 of computing device 10 may obtain an indication ofa future location and a future time associated with information includedin at least one previous communication. Suggestion module 26 computingdevice 10 may further obtain an activity associated with the futurelocation and the future time. Suggestion module 26 may obtain anindication of a future time, a future location and a category/activityassociated with the future time and the future location when the futurelocation matches the current location and the future time matches thecurrent time.

For example, computing device 10 may execute an application thatreceives one or more communications over time. With explicit permissionfrom the user to access personal information such previouscommunications, UDA module 24 and/or information server system 60 maydata mine the one or more previous communications for keywords andphrases that may indicate future times and future locations associatedwith future activities, events, and the like. UDA module 24 and/orinformation server system 60 may tag and format portions of the one ormore previous communications for inclusion in fields of one or moreinformation cards. Suggestion module 26 of computing device 10 mayperiodically and/or automatically monitor the current location ofcomputing device 10 and the current time obtained from device locationmodule 22 and parse the time and location tags associated with theprevious communications to determine whether any portions of the taggedor classified communication data is relevant to the current locationand/or current time and/or an event or activity associated with thecurrent location and/or current time.

In response to determining that the current location and the currenttime of day match the location and/or time tags of the previouscommunications, suggestion module 26 may obtain an indication of thefuture location and the future time. Suggestion module 26 may identifyone or more matching portions of tagged or classified communication dataas those portions which have location tags within a threshold distance(e.g., one mile, one block, one hour drive, etc.) of the currentlocation and/or those portions which have time tags within a thresholdtime (e.g., one hour, one day, etc.) of the current time. In response toidentifying one or more activity tags that link to the matching timeand/or location tags, suggestion module 26 may obtain the activityindicated by the linking activity tags that are associated with thefuture time and future location.

Suggestion module 26 generate one or more graphical indicationsassociated with the activity and determine one or more times related tothe activity for causing UI module 20 to present the one or moregraphical indications at UID 12. For example, suggestion module 26 mayobtain navigation information, such as a duration of time (e.g., a triptime for an expected travel route) for a user associated with computingdevice 10 to travel from a current location of computing device 10 tothe future location. For instance, suggestion module 26 may obtain theduration of time in response to a query for a travel duration toinformation server system 60. The duration of time may be based at leastin part on traffic conditions determined by information server system 60along a route of travel from the current location to the future locationfor instance at the current time of day.

Suggestion module 26 may utilize the duration to determine when (e.g., adeparture time) to cause UI module 20 to present one or more graphicalindications associated with the activity at UID 12. In other words,based on the duration, suggestion module 26 may obtain the departuretime at which the user is predicted to need to leave the currentlocation to travel in order to arrive at the future location at anarrival time at least prior to the future time. The arrival time mayindicate an estimated and/or recommended time for a user to arrive atthe future location prior to the future time in order for the user toperform the associated activity. For example, if the activity istraveling by airplane, the future location corresponds to an airport,and the future time corresponds to time to board the airplane, thearrival time may be one hour prior to the boarding time to allow a userenough time after arriving at the airport to check bags and/or passthrough security checkpoints. Suggestion module 26 may determine thedeparture time, based on the arrival time and the duration, in order forthe user to travel from the current location of computing device 10 toarrive at the future location prior to the arrival time by at least theduration.

In response to determining that the current time corresponds to, or iswithin a time threshold (e.g., one hour, etc.) of the departure time,suggestion module 26 of computing device 10 may cause UI module 20 tooutput a graphical indication associated with the tagged or classifiedcommunication information linked to the future time, the future locationand the activity at UID 12. For example, suggestion module 26 maypopulate the fields of an information card associated with the activitywith the portions of previous communications which are linked to thematching tags. For instance, FIG. 1 illustrates an air travelinformation card that includes air travel information obtained from ane-mail confirmation that was sent to an e-mail account associated withthe user after the user booked an airplane ticket. Suggestion module 26may generate a graphical indication of the information card and cause UImodule 20 to automatically (e.g., without user intervention) output thegraphical indication for display and/or an audible indication at UID 12at the departure time.

In some examples, suggestion module 26 may obtain additional information(e.g., information not included within the previous communications) toinclude within the fields of the information card associated with theactivity. For example, suggestion module 26 may retrieve a credential(e.g., a boarding pass image, a bar code, a Quick Response (QR) code,etc.) associated with the activity from information server system 60 orsome other source of network 66 (e.g., on the Internet). FIG. 1illustrates a QR code that suggestion module 26 obtained from anairline's online check-in system.

In this way, computing device 10 may automatically or upon request fromthe user, present graphical indications (e.g., information cards)associated with information from previous communications. The graphicalindications may include information that computing device 10 determinesmay be of interest to the user at a current location and/or a currenttime. A user of computing device 10 may spend less time searchingthrough previous communications and/or on the Internet with computingdevice 10 to find information relevant to the current location ofcomputing device 10 and/or the current time. With the user performingfewer searches, computing device 10 may perform fewer operations and useless power.

FIG. 2 is a block diagram illustrating an example computing deviceconfigured to present information relevant to a particular time andlocation of the computing device, in accordance with one or more aspectsof the present disclosure. Computing device 10 of FIG. 2 is describedbelow within the context of system 1 of FIG. 1. FIG. 2 illustrates onlyone particular example of computing device 10 of system 1, and manyother examples of computing device 10 may be used in other instances andmay include a subset of the components included in example computingdevice 10 or may include additional components not shown in FIG. 2.

As shown in the example of FIG. 2, computing device 10 includes userinterface device 12 (“UID 12”), one or more processors 40, one or moreinput devices 42, one or more communication units 44, one or more outputdevices 46, and one or more storage devices 48. Storage devices 48 ofcomputing device 10 also include UI module 20, device location module22, user data analysis (UDA) module 24, and suggestion module 26.Communication channels 50 may interconnect each of the components 12,13, 20, 22, 24, 26, 40, 42, 44, and 46 for inter-componentcommunications (physically, communicatively, and/or operatively). Insome examples, communication channels 50 may include a system bus, anetwork connection, an inter-process communication data structure, orany other method for communicating data.

One or more input devices 42 of computing device 10 may receive input.Examples of input are tactile, audio, and video input. Input devices 42of computing device 10, in one example, includes a presence-sensitivedisplay, touch-sensitive screen, mouse, keyboard, voice responsivesystem, video camera, microphone or any other type of device fordetecting input from a human or machine.

One or more output devices 46 of computing device 10 may generateoutput. Examples of output are tactile, audio, and video output. Outputdevices 46 of computing device 10, in one example, includes apresence-sensitive display, sound card, video graphics adapter card,speaker, cathode ray tube (CRT) monitor, liquid crystal display (LCD),or any other type of device for generating output to a human or machine.

One or more communication units 44 of computing device 10 maycommunicate with external devices via one or more networks bytransmitting and/or receiving network signals on the one or morenetworks. For example, computing device 10 may use communication unit 44to send and receive data to and from information server system 60 ofFIG. 1. Computing device 10 may use communication unit 44 to transmitand/or receive radio signals on a radio network such as a cellular radionetwork. Likewise, communication units 44 may transmit and/or receivesatellite signals on a satellite network such as a global positioningsystem (GPS) network. Examples of communication unit 44 include anetwork interface card (e.g. such as an Ethernet card), an opticaltransceiver, a radio frequency transceiver, a GPS receiver, or any othertype of device that can send and/or receive information. Other examplesof communication units 44 may include short wave radios, cellular dataradios, wireless Ethernet network radios, as well as universal serialbus (USB) controllers.

In some examples, UID 12 of computing device 10 may includefunctionality of input devices 42 and/or output devices 46. In theexample of FIG. 2, UID 12 may be or may include a presence-sensitiveinput device. In some examples, a presence sensitive input device maydetect an object at and/or near a screen. As one example range, apresence-sensitive input device may detect an object, such as a fingeror stylus that is within 2 inches or less of the screen. Thepresence-sensitive input device may determine a location (e.g., an (x,y)coordinate) of a screen at which the object was detected. In anotherexample range, a presence-sensitive input device may detect an objectsix inches or less from the screen and other ranges are also possible.The presence-sensitive input device may determine the location of thescreen selected by a user's finger using capacitive, inductive, and/oroptical recognition techniques. In some examples, presence sensitiveinput device also provides output to a user using tactile, audio, orvideo stimuli as described with respect to output device 46, e.g., at adisplay. In the example of FIG. 2, UID 12 presents a user interface(such as user interface 14 of FIG. 1).

While illustrated as an internal component of computing device 10, UID12 also represents and external component that shares a data path withcomputing device 10 for transmitting and/or receiving input and output.For instance, in one example, UID 12 represents a built-in component ofcomputing device 10 located within and physically connected to theexternal packaging of computing device 10 (e.g., a screen on a mobilephone). In another example, UID 12 represents an external component ofcomputing device 10 located outside and physically separated from thepackaging of computing device 10 (e.g., a monitor, a projector, etc.that shares a wired and/or wireless data path with a tablet computer).

One or more storage devices 48 within computing device 10 may storeinformation for processing during operation of computing device 10(e.g., computing device 10 may store data accessed by modules 20, 22,24, and 26 during execution at computing device 10). In some examples,storage device 48 is a temporary memory, meaning that a primary purposeof storage device 48 is not long-term storage. Storage devices 48 oncomputing device 10 may configured for short-term storage of informationas volatile memory and therefore not retain stored contents if poweredoff. Examples of volatile memories include random access memories (RAM),dynamic random access memories (DRAM), static random access memories(SRAM), and other forms of volatile memories known in the art.

Storage devices 48, in some examples, also include one or morecomputer-readable storage media. Storage devices 48 may be configured tostore larger amounts of information than volatile memory. Storagedevices 48 may further be configured for long-term storage ofinformation as non-volatile memory space and retain information afterpower on/off cycles. Examples of non-volatile memories include magnetichard discs, optical discs, floppy discs, flash memories, or forms ofelectrically programmable memories (EPROM) or electrically erasable andprogrammable (EEPROM) memories. Storage devices 48 may store programinstructions and/or data associated with modules 20, 22, 24, and 26.

One or more processors 40 may implement functionality and/or executeinstructions within computing device 10. For example, processors 40 oncomputing device 10 may receive and execute instructions stored bystorage devices 48 that execute the functionality of UI module 20,device location module 22, UDA module 24, and suggestion module 26.These instructions executed by processors 40 may cause computing device10 to store information, within storage devices 48 during programexecution. Processors 40 may execute instructions of modules 20, 22, 24,and 26 to cause UID 12 to present user interface 14 with informationcard 16 at UID 12. That is, modules 20, 22, 24, and 26 may be operableby processors 40 to perform various actions or functions of computingdevice 10, for instance, causing UID 12 to present user interface 14 atUID 12.

Computing device 10 may be part of a mobile communications network, suchas network 66 of FIG. 1, and as described in U.S. ProvisionalApplication No. 61/663,049, filed Jun. 22, 2012, and U.S. ProvisionalApplication No. 61/663,813, filed Jun. 25, 2012, the entire contents ofeach of which are hereby incorporated by reference and to which thisdisclosure claims priority. Computing device 10 may exchange data with aserver or cloud computing system over the mobile communications network.The server or cloud computing system may perform some or all of thetechniques and operations related to modules 20, 22, 24, and 26described herein. In other words, some or all of the techniques andoperations related to modules 20, 22, 24, and 26 can be implementedlocally at computing device 10, for instance, a mobile phone, and someor all of the techniques and operations may by performed remotely via aserver connected to the mobile communications network that exchangesdata with computing device 10. In other words, while shown in FIG. 2 asbeing included within computing device 10, modules 20, 22, 24, and 26may be a part of a remote computing system and may execute as one ormore remote computing services, such as one or more services provided bya cloud and/or cluster based computing system.

Suggestion module 26 of computing device 10 may obtain an indication ofa future location and a future location associated with informationincluded in at least one previous communication. Suggestion module 26 ofcomputing device 10 may further obtain an activity associated with thefuture location and the future time. For example, computing device 10may execute an electronic message (e.g., an e-mail, text-based,voicemail, etc.) application that receives one or more communicationsover time. With explicit permission from the user to access personalinformation such as previous communications, UDA module 24 may data minethe information associated with one or more previous communications forkeywords and phrases that may indicate future important times, futurelocations, activities, and events (e.g., activities or events related tothe future locations and/or future times). Events may include publicevents, such as movies, airplane flights, other entertainmentperformances, etc. and personal events, or events that are notnecessarily public in nature, such as birthday parties, meetings, socialgatherings, etc.

In other words, UDA module 24 may search within the content of theinformation for one or more key words that indicate a future location, afuture time, and/or event (e.g., an activity and/or event performed by auser at the future location and/or the future time). UDA module 24 maytag the portions of the information that contain the one or morekeywords with one or more location tags and/or one or more time tags.

Suggestion module 26 may obtain the indication of the future locationand the future time by matching at least one of the one or more locationtags to the current location and at least one of the one or more timetags to the current time. For example, periodically and/orautomatically, suggestion module 26 may determine that the at least oneof the one or more location tags comprises a location value within athreshold distance of the current location of computing device 10 thatsuggestion module 26 obtained from device location module 22. Suggestionmodule 26 may further determine, periodically and/or automatically, thatthe at least one of the one or more time tags comprises a time valuewithin a threshold time of the current time obtained from devicelocation module 22. In other words, suggestion module 26 mayperiodically and/or automatically, compare the current location and thecurrent time to the location and time tags generated by UDA module 24 todetermine whether portions of previous communications information may berelevant to the current location and the current time.

Suggestion module 26 of computing device 10 may further data mine aportion of the information associated with previous communications(e.g., the pieces of information that UDA module 24 tags with one ormore location and time tags) for one or more keywords associated withone or more events or activities associated with the user of computingdevice 10, such as traveling, attending a performance, show, movie,concert, etc., receiving a package, visiting real estate, and the like.In obtaining the indication of the activity associated with the futurelocation and the future time, suggestion module 26 may identify at leastone of the one or more keywords with the portion of the information. Inother words, by parsing the location and time tagged or classifiedcommunication information for one or more keywords associated with oneor more activities and events and suggestion module 26 may determine anactivity and/or event associated with the future location and the futuretime.

Suggestion module 26 may cause UI module 20 to present one or moregraphical indications associated with the events and/or activitiesidentified within the communication information at UID 12 at certaintimes to assist the user in planning and/or otherwise making better useof the communication information. In other words, once suggestion module26 obtains an indication that the future location and the future timematch (e.g., are within a threshold of) the current location and thecurrent time, suggestion module 26 may present information associatedwith the events and/or activities obtained from the communicationinformation that suggestion module 26 predicts would interest the userof computing device 10.

In some examples, suggestion module 26 of computing device 10 may obtaina duration of time (e.g., a trip time for an expected travel route) fora user associated with computing device 10 to travel from a currentlocation of computing device 10 to the future location. Suggestionmodule 26 of computing device 10 may obtain, based at least in part onthe duration, a departure time at which the user is predicted to need toleave the current location to travel in order to arrive at the futurelocation at an arrival time at least prior to the future location andtime. For example, the information may include navigation directions,reminders and the like so the user can better plan and/or perform theassociated activity and/or event at the future location and the futuretime. Suggestion module 26 may obtain (e.g., from information serversystem 60) a predicted duration of time (e.g., a trip time for anexpected travel route) for the user to travel from the current locationto the future location. With the predicted duration, suggestion module26 may obtain a predicted departure time that indicates when suggestionmodule 26 should alert, notify, or otherwise indicate to the user thathe or she should begin traveling to the future location in order toarrive at the future location in time to attend the event and/or performthe activity.

Suggestion module 26 may determine the arrival time based on the type ofthe activity and/or the type of the event occurring at the futurelocation and the future time. In some examples, the arrival time (thatthe departure time is at least partially based on) may be prior to thefuture time by a determined amount of time based at least in part on theactivity. In other words, suggestion module 26 may obtain a determinedamount of time (e.g., a time buffer), based on the type of activityand/or the type of the event occurring at the future location and thefuture time, prior to the future time that may provide the user anamount of time needed to perform the activity and/or attend the event atthe future time.

For instance, the determined amount of time may be one hour of time ifthe type of the event or the type of activity is traveling by air toprovide the user enough time to check baggage and pass through securityat an airport at the future location before the time to board anairplane at the future time. Likewise, the determined amount of time maybe fifteen minutes of time if the type of activity or the type of theevent the user is attending is a movie showing to provide the userenough time to purchase a ticket and find a seat in a theatre at thefuture location before the movie starts at the future time. Suggestionmodule 26 may determine the arrival time as a time at least prior to thefuture time by the determined amount of time and the departure time maybe at least prior to the arrival time by the predicted duration.

In other words, suggestion module 26 may determine the arrival timebased on the event, suggestion module 26 may determine the arrival timebased on the activity, and/or suggestion module 26 may determine thearrival time based on the type of the event or the type of activity. Forexample, if the activity is playing in an amateur soccer game,suggestion module 26 may determine the arrival time to be fifteenminutes prior to the future time of the soccer match to allow the userenough time to stretch and put on his or her cleats and shin guardsbefore the game. If the event is attending a professional baseball game,suggestion module 26 may determine the arrival time to be thirty minutesbefore the opening pitch to allow the user enough time to enter thestadium and take his or her seat. If the type of activity is travelingby air, or the type the of event is the departure of an aircraft,suggestion module 26 may determine the arrival time to be one hourbefore the departure time or one hour before the boarding time to allowthe user enough time to pass through security at the airport and/orcheck luggage at the gate. In any event, suggestion module 26 maydetermine the arrival time based on the future time and suggestionmodule 26 may determine the arrival time based on the type of the event,based on the type of activity, based on the event, and/or based on theactivity.

In any event, in response to obtaining an indication that the currenttime corresponds to the departure time, suggestion module 26 ofcomputing device 10 may cause UI module 20 to output, for display and/oraudio, an audible and/or graphical indication associated with theinformation at UID 12. For instance, in response to obtaining anindication from device location module 22 that the current timecorresponds to the departure time, suggestion module 26 may generate aninformation card associated with the activity and/or event that isoccurring at the future location at the future time.

Suggestion module 26 may obtain portions of the tagged or classifiedcommunications information that UDA module 24 formatted during the datamining of future locations, future times, activities and/or events.Suggestion module 26 may include the portions of information withinfields of one or more information cards related to the activity and/orevent associated with the future location and/or the future time. Forinstance, suggestion module 26 may include navigation directions, thepredicted duration of travel time to the future location, a map showingthe future location relative to the current location, etc. within agraphical indication of card 16 that UI module 20 outputs for display atUID 12.

In some examples, the graphical indication associated with theinformation may include customized information based on the specificactivity and/or event associated with the future location and the futuretime. For example, the graphical indication may include a credentialassociated with the activity (e.g., an electronic ticket, barcode, QRcode, etc.) that the user may need to show to enter the event and/orperform the activity.

In some examples, in response to obtaining an indication that thecurrent location of the computing device corresponds to the futurelocation, and/or in response to obtaining an indication that the currenttime corresponds to the future time, suggestion module 26 may cause UImodule 20 to output, for display, an updated graphical indicationassociated with the activity. In other words, in response to obtainingan indication that the current location associated with computing device10 is within a distance threshold (e.g., one mile, one block, fiveminute walk, etc.) of the future location and/or that the current timeis within a time threshold (e.g., fifteen minutes, one hour, etc.) ofthe future time, suggestion module 26 may update the graphicalindication of information card 16 to include different and/or additionalinformation (e.g., updated navigation directions, a credential, anelectronic ticket, a boarding pass, etc.) than the information includedin the graphical indication that UI module 20 outputted for display atthe departure time.

In some examples, suggestion module 26 of computing device 10 may causeUI module 20 to output, for display, the graphical indication of card 16in response to an indication of an input to surface a credentialassociated with the activity. For example, a user may provide an input,such as a gesture at a location of UID 12. Suggestion module 26 mayobtain information about the gesture from UI module 20 and determine thegesture indicates a request from the user to present card 16 at UID 12.Suggestion module 26 may cause UI module 20 to output, for display, thegraphical indication of card 16, including a credential, at UID 12. Forinstance, FIG. 1 shows a QR code associated with an airplane ticket thatthe user may show to the ticketing agent prior to boarding an airplane.

FIG. 3 is a block diagram illustrating an example computing device thatoutputs graphical content for display at a remote device, in accordancewith one or more techniques of the present disclosure. Graphicalcontent, generally, may include any visual information that may beoutput for display, such as text, images, a group of moving images, etc.The example shown in FIG. 3 includes a computing device 100,presence-sensitive display 101, communication unit 110, projector 120,projector screen 122, mobile device 126, and visual display device 130.Although shown for purposes of example in FIGS. 1 and 2 as a stand-alonecomputing device 10, a computing device such as computing devices 10,100 may, generally, be any component or system that includes a processoror other suitable computing environment for executing softwareinstructions and, for example, need not include a presence-sensitivedisplay.

As shown in the example of FIG. 3, computing device 100 may be aprocessor that includes functionality as described with respect toprocessor 40 in FIG. 2. In such examples, computing device 100 may beoperatively coupled to presence-sensitive display 101 by a communicationchannel 102A, which may be a system bus or other suitable connection.Computing device 100 may also be operatively coupled to communicationunit 110, further described below, by a communication channel 102B,which may also be a system bus or other suitable connection. Althoughshown separately as an example in FIG. 3, computing device 100 may beoperatively coupled to presence-sensitive display 101 and communicationunit 110 by any number of one or more communication channels.

In other examples, such as illustrated previously by computing device 10in FIGS. 1-2, a computing device may refer to a portable or mobiledevice such as mobile phones (including smart phones), laptop computers,computing watches, computing eye glasses, wearable computing devices,etc. In some examples, a computing device may be a desktop computers,tablet computers, smart television platforms, cameras, personal digitalassistants (PDAs), servers, mainframes, etc.

Presence-sensitive display 101 may include display device 103 andpresence-sensitive input device 105. Display device 103 may, forexample, receive data from computing device 100 and display thegraphical content. In some examples, presence-sensitive input device 105may determine one or more inputs (e.g., continuous gestures, multi-touchgestures, single-touch gestures, etc.) at presence-sensitive display 101using capacitive, inductive, and/or optical recognition techniques andsend indications of such input to computing device 100 usingcommunication channel 102A. In some examples, presence-sensitive inputdevice 105 may be physically positioned on top of display device 103such that, when a user positions an input unit over a graphical elementdisplayed by display device 103, the location at whichpresence-sensitive input device 105 corresponds to the location ofdisplay device 103 at which the graphical element is displayed. In otherexamples, presence-sensitive input device 105 may be positionedphysically apart from display device 103, and locations ofpresence-sensitive input device 105 may correspond to locations ofdisplay device 103, such that input can be made at presence-sensitiveinput device 105 for interacting with graphical elements displayed atcorresponding locations of display device 103.

As shown in FIG. 3, computing device 100 may also include and/or beoperatively coupled with communication unit 110. Communication unit 110may include functionality of communication unit 44 as described in FIG.2. Examples of communication unit 110 may include a network interfacecard, an Ethernet card, an optical transceiver, a radio frequencytransceiver, or any other type of device that can send and receiveinformation. Other examples of such communication units may includeBluetooth, 3G, and Wi-Fi radios, Universal Serial Bus (USB) interfaces,etc. Computing device 100 may also include and/or be operatively coupledwith one or more other devices, e.g., input devices, output devices,memory, storage devices, etc. that are not shown in FIG. 3 for purposesof brevity and illustration.

FIG. 3 also illustrates a projector 120 and projector screen 122. Othersuch examples of projection devices may include electronic whiteboards,holographic display devices, and any other suitable devices fordisplaying graphical content. Projector 120 and projector screen 122 mayinclude one or more communication units that enable the respectivedevices to communicate with computing device 100. In some examples, theone or more communication units may enable communication betweenprojector 120 and projector screen 122. Projector 120 may receive datafrom computing device 100 that includes graphical content. Projector120, in response to receiving the data, may project the graphicalcontent onto projector screen 122. In some examples, projector 120 maydetermine one or more inputs (e.g., continuous gestures, multi-touchgestures, single-touch gestures, etc.) at projector screen 122 usingoptical recognition or other suitable techniques and send indications ofsuch input using one or more communication units to computing device100. In such examples, projector screen 122 may be unnecessary, andprojector 120 may project graphical content on any suitable medium anddetect one or more user inputs using optical recognition or other suchsuitable techniques.

Projector screen 122, in some examples, may include a presence-sensitivedisplay 124. Presence-sensitive display 124 may include a subset offunctionality or all of the functionality of UI device 4 as described inthis disclosure. In some examples, presence-sensitive display 124 mayinclude additional functionality. Projector screen 122 (e.g., anelectronic display of computing eye glasses), may receive data fromcomputing device 100 and display the graphical content. In someexamples, presence-sensitive display 124 may determine one or moreinputs (e.g., continuous gestures, multi-touch gestures, single-touchgestures, etc.) at projector screen 122 using capacitive, inductive,and/or optical recognition techniques and send indications of such inputusing one or more communication units to computing device 100.

FIG. 3 also illustrates mobile device 126 and visual display device 130.Mobile device 126 and visual display device 130 may each includecomputing and connectivity capabilities. Examples of mobile device 126may include e-reader devices, convertible notebook devices, hybrid slatedevices, computerized watches, computerized eyeglasses, etc. Examples ofvisual display device 130 may include other semi-stationary devices suchas televisions, computer monitors, etc. As shown in FIG. 3, mobiledevice 126 may include a presence-sensitive display 128. Visual displaydevice 130 may include a presence-sensitive display 132.Presence-sensitive displays 128, 132 may include a subset offunctionality or all of the functionality of UID 12 as described in thisdisclosure. In some examples, presence-sensitive displays 128, 132 mayinclude additional functionality. In any case, presence-sensitivedisplay 132, for example, may receive data from computing device 100 anddisplay the graphical content. In some examples, presence-sensitivedisplay 132 may determine one or more inputs (e.g., continuous gestures,multi-touch gestures, single-touch gestures, etc.) at projector screenusing capacitive, inductive, and/or optical recognition techniques andsend indications of such input using one or more communication units tocomputing device 100.

As described above, in some examples, computing device 100 may outputgraphical content for display at presence-sensitive display 101 that iscoupled to computing device 100 by a system bus or other suitablecommunication channel. Computing device 100 may also output graphicalcontent for display at one or more remote devices, such as projector120, projector screen 122, mobile device 126, and visual display device130. For instance, computing device 100 may execute one or moreinstructions to generate and/or modify graphical content in accordancewith techniques of the present disclosure. Computing device 100 mayoutput the data that includes the graphical content to a communicationunit of computing device 100, such as communication unit 110.Communication unit 110 may send the data to one or more of the remotedevices, such as projector 120, projector screen 122, mobile device 126,and/or visual display device 130. In this way, computing device 100 mayoutput the graphical content for display at one or more of the remotedevices. In some examples, one or more of the remote devices may outputthe graphical content at a presence-sensitive display that is includedin and/or operatively coupled to the respective remote devices.

In some examples, computing device 100 may not output graphical contentat presence-sensitive display 101 that is operatively coupled tocomputing device 100. In other examples, computing device 100 may outputgraphical content for display at both a presence-sensitive display 101that is coupled to computing device 100 by communication channel 102A,and at one or more remote devices. In such examples, the graphicalcontent may be displayed substantially contemporaneously at eachrespective device. For instance, some delay may be introduced by thecommunication latency to send the data that includes the graphicalcontent to the remote device. In some examples, graphical contentgenerated by computing device 100 and output for display atpresence-sensitive display 101 may be different than graphical contentdisplay output for display at one or more remote devices.

Computing device 100 may send and receive data using any suitablecommunication techniques. For example, computing device 100 may beoperatively coupled to external network 114 using network link 112A.Each of the remote devices illustrated in FIG. 3 may be operativelycoupled to network external network 114 by one of respective networklinks 112B, 112C, and 112D. External network 114 may include networkhubs, network switches, network routers, etc., that are operativelyinter-coupled thereby providing for the exchange of information betweencomputing device 100 and the remote devices illustrated in FIG. 3. Insome examples, network links 112A-112D may be Ethernet, ATM or othernetwork connections. Such connections may be wireless and/or wiredconnections.

In some examples, computing device 100 may be operatively coupled to oneor more of the remote devices included in FIG. 3 using direct devicecommunication 118. Direct device communication 118 may includecommunications through which computing device 100 sends and receivesdata directly with a remote device, using wired or wirelesscommunication. That is, in some examples of direct device communication118, data sent by computing device 100 may not be forwarded by one ormore additional devices before being received at the remote device, andvice-versa. Examples of direct device communication 118 may includeBluetooth, Near-Field Communication, Universal Serial Bus, Wi-Fi,infrared, etc. One or more of the remote devices illustrated in FIG. 3may be operatively coupled with computing device 100 by communicationlinks 116A-116D. In some examples, communication links 112A-112D may beconnections using Bluetooth, Near-Field Communication, Universal SerialBus, infrared, etc. Such connections may be wireless and/or wiredconnections.

Computing device 100 may be operatively coupled to visual display device130 using external network 114. Computing device 100 may obtain anindication of a future location and a future time associated withinformation included in at least one previous communication. Forexample, computing device 100 may execute an e-mail application thatreceives one or more e-mail messages over time. With explicit permissionfrom the user to access personal information such as e-mail, computingdevice 100 may data mine the one or more e-mail messages for keywordsand phrases that may indicate future important times, locations,activities, and events. Computing device 100 may apply time, location,activity, and/or event tags to portions of information within the e-mailcommunications for later retrieval.

Computing device 100 may determine that a current location of computingdevice 100 and a current time correspond to a future location and afuture time associated with the tagged or classified e-mailcommunications. For example, computing device 100 determine that thecurrent location is within a distance threshold of a location value of alocation tag and that the current time is within a time threshold of atime value of a time tag. Computing device 100 may identify the portionsof the e-mail communications associated with the matching location andtime tags as being relevant to the current location and current time.Computing device 100 may data mine the portions of the e-mailcommunications for one or more activity and/or event keywords and obtainan activity associated with the future location and the future timeindicated by the tagged or classified e-mail communications.

Computing device 100 may obtain a duration of time (e.g., a trip timefor an expected travel route) for a user associated with the computingdevice to travel from a current location of the computing device to thefuture location and further obtain, based at least in part on theduration, a departure time at which the user is predicted to need toleave the current location to travel in order to arrive at the futurelocation at an arrival time at least prior to the future time. Inresponse to obtaining an indication that the current time corresponds tothe departure time, computing device 100 may output, for display, agraphical indication associated with the tagged or classified portionsof the e-mail communications. For example, computing device 100 mayinclude portions of the previous communications that have been formattedaccording to the associated activity and/or event into data thatrepresents graphical representations of information cards (e.g., card16). Computing device 100 may send the data that represents thegraphical representations to visual display device 130 over externalnetwork 114. Based on the data received over external network 114,visual display device may output for display a graphical indicationassociated with the information from the e-mail communications.

FIGS. 4 through 6 are conceptual diagrams illustrating example graphicaluser interfaces for presenting information relevant to a particular timeand location of a computing device, in accordance with one or moreaspects of the present disclosure. FIGS. 4 through 6 are described belowin the context of computing device 10 from FIG. 1 and FIG. 2. Forinstance, FIGS. 4 through 6 show mobile phone 200 as one example ofcomputing device 10 from FIG. 1 and FIG. 2. Mobile phone 200 may includeUDA module 24, device location module 22, suggestion module 26, and UImodule 20. Mobile phone may include UID 12 for presenting a userinterface and information cards 220, 240, and 260 to a user.

In the example of FIG. 4, mobile phone 200 presents information card 220(e.g., at a screen of UID 12) which includes information about an onlinereal estate listing of an apartment for rent. Mobile phone 200 mayobtain, based on previous communications related to internet searchesfor property listings on the internet or e-mail communications with arealtor, a future location and/or a future time associated with at leasta portion of information included in the previous communications. Forinstance, mobile phone 200 may determine a street location or an area ofa city within the previous communications and tag the previouscommunications with the street location.

When a user of mobile phone 200 enters the area of the city indicated bythe e-mail communications, mobile phone 200 may determine the currentlocation of mobile phone 200 corresponds to the location tag of thee-mail communication and present information card 220 that includes oneor more online listings of real estate in the area (e.g., informationcard 220 may include portions of the information in the e-mailcommunication with the realtor that includes the one or more onlinelistings). In this way, whether the user requested to view informationcard 220 or mobile phone 200 automatically presented information card220, a user is alerted about information of interest to the user for acurrent time and a current location of mobile phone 200.

In the example of FIG. 5, mobile phone 200 presents information card 240(e.g., at a screen of UID 12) which includes information about ane-ticket for a movie showing at a theatre. Mobile phone 200 maydetermine, based on a previous e-mail communication confirming theonline purchase of a movie ticket, a location and a time associated withat least a portion of information included in the previouscommunication. For instance, mobile phone 200 may determine an addressof the movie theatre and a time the movie is playing based on theprevious e-mail communication and may tag the previous communicationwith the address and the time.

When a user of mobile phone 200 enters the movie theatre indicated inthe e-mail confirmation at a time just prior to the start of the movie,mobile phone 200 may determine the current location of mobile phone 200and the current time corresponds to the location tag of the e-mailcommunication and present information card 240 at UID 12 (e.g., thescreen of mobile phone 200) that includes the e-ticket. In this way,whether the user requested to view information card 240 by providing aninput to present a credential associated with the e-ticket or whethermobile phone 200 automatically presented information card 240, a userdoes not need to search for the e-ticket confirmation e-mail with mobilephone 200 while at the theatre at the time of the movie. Instead, theuser is alerted about the e-ticket at the appropriate time and placeindicated by the e-mail confirmation when the current location of mobilephone 200 and the current time corresponds to the location and time ofthe movie.

In the example of FIG. 6, mobile phone 200 presents information card 260(e.g., at a screen of UID 12) which includes information about a movieshowing at a movie theatre. Mobile phone 200 may determine, by datamining and time and location tagging or classifying of previouscommunications (e.g., social network interactions between a user andfriends), a location associated with at least a portion of informationincluded in the previous communications. For instance, mobile phone 200may determine a street location of a theatre mentioned within theprevious communications and tag the previous communications with thestreet location.

When a user of mobile phone 200 enters within a threshold distance ofthe theatre (e.g., one mile, fifteen minute walk, etc.) with mobilephone 200, mobile phone 200 may determine that the current location ofmobile phone 200 corresponds to the location tag of the previous socialmedia communications (e.g., the movie theatre) and present informationcard 260 that includes a popular movie playing at the nearby theatre inthe immediate future (e.g., at 10:25 pm). In this way, whether the userrequested to view information card 260 or mobile phone 200 automaticallypresented information card 260, a user is alerted about information ofinterest to the user for a current time and a current location of mobilephone 200.

FIG. 7 is a flowchart illustrating an example operation of the computingdevice, in accordance with one or more aspects of the presentdisclosure. The process of FIG. 7 may be performed by one or moreprocessors of a computing device, such as computing device 10 andcomputing device 100 illustrated in FIG. 1, FIG. 2, and FIG. 3. Forpurposes of illustration, FIG. 7 is described below within the contextof computing devices 10 of FIG. 1.

Computing device 10 may determine based on previous communications, alocation associated with at least a portion of information included inthe previous communications (300). For example, computing device 10 maydata mine and/or otherwise parse communications for information having atime and/or location dependency, such as flight confirmations,e-tickets, etc. Computing device 10 may tag the previous communicationswith location and time data for later retrieval.

Computing device 10 may determine a current device location of computingdevice 10 (310). For example, a user interacting with computing device10 may interact with user interface 14. The user may provide a gestureat a presence-sensitive input device of computing device 10 to commandcomputing device 10 to present information cards within user interface14. In response to an indication of the gesture detected at thepresence-sensitive input device, computing device 10 may determine thecurrent device location of computing device 10 (e.g., GPS coordinates)and the current time.

Computing device 10 may determine, based at least in part on the currentdevice location, that the current location corresponds to the locationassociated with the portion of the information (320). For example, todetermine information that the user may find relevant to the currentdevice location and current time, computing device 10 may parse theprevious communications for location and time tags corresponding to thecurrent location and the current time. Computing device 10 may retrievethe portions of the previous communications having location and timetags that match the current location and the current time. In someexamples, computing device 10 may determine the matching location andtime tags based on approximate correlations between the location andtime tags of portions of communication data and the current locationand/or the current time. For example, computing device 10 may identifylocation and time tags of portions of communication data having valuesthat are within a threshold quantity of distances and/or time to thecurrent location and the current time. In other words, computing device10 may search and identify location tags of data that are within alocation threshold (e.g., two blocks, five miles, etc.) of the currentlocation. Computing device 10 may search and identify matching time tagsof data that are within a time threshold (e.g., one day, two hours,twenty minutes, etc.) of the current time.

Computing device 10 may output, for display, a graphical indication ofthe portion of the information (330). For example, computing device 10may present one or more information cards within user interface 14 at adisplay device (e.g., the presence-sensitive screen).

FIG. 8 is a flowchart illustrating further example operations of thecomputing device in accordance with one or more aspects of the presentdisclosure. The process of FIG. 8 may be performed by one or moreprocessors of a computing device, such as computing device 10 andcomputing device 100 illustrated in FIG. 1, FIG. 2, and FIG. 3. Forpurposes of illustration, FIG. 8 is described below within the contextof computing devices 10 of FIG. 1.

Suggestion module 26 of computing device 10 may obtain an indication ofa future location and a future time associated with information includedin at least one previous communication (400). For example, suggestionmodule 26 may compare the current location of computing device 10 andthe current time (obtained from device location module 22) to locationand time tags within previous communication information previously datamined by UDA module 24. Suggestion module 26 may determine the currentlocation and the current time corresponds to the location of a movietheatre and the start time of a movie within an e-mail confirmation of amovie ticket purchase received from an online ticketing agent.

Suggestion module 26 of computing device 10 may obtain an eventassociated with the future location and the future time (410). Forexample, suggestion module 26 may identify an activity and/or event tagwithin the portions of the e-mail confirmation tagged or classified byUDA module 24 that indicates the movie showing at the theatre at thestart time.

Suggestion module 26 of computing device 10 may obtain a duration oftime (e.g., a trip time for an expected travel route) for a userassociated with computing device 10 to travel from a current location ofthe computing device to the future location (420). For example,suggestion module 26 may obtain navigation directions and a predictedduration of travel time (e.g., from information server system 60 or fromdata stored locally at computing device 10) for a user to walk, drive,etc. from the current location obtained from device location module 22to the future location associated with the theatre.

Based at least in part on the duration, suggestion module 26 ofcomputing device 10 may obtain a departure time at which the user ispredicted to need to leave the current location to travel in order toarrive at the future location at the future time (430). For example,suggestion module 26 may determine an arrival time prior to the starttime of the movie that may provide the user enough time to walk to hisor her seat in the theater and/or purchase refreshments and not miss thebeginning of the movie. Based on the arrival time, and the estimatedduration of time (e.g., the trip time for an expected travel route) totravel to the theater, suggestion module 26 may determine a departuretime (e.g., a time that is prior to the arrival time by at least thepredicted travel duration) that the user needs to leave a currentlocation to arrive at the theatre at the arrival time. Suggestion module26 may store the departure time as additional information within theactivity and/or event tag within the portions of the e-mail confirmationtagged or classified by UDA module 24 that indicates the movie showingat the theatre at the start time.

Suggestion module 26 of computing device 10 may obtain an indicationthat the current time corresponds to the departure time (440). Forexample, suggestion module 26 may obtain the current time from devicelocation module 22 and periodically and/or automatically compare thecurrent time to the portions of e-mail communications tagged orclassified by UDA module 24. Suggestion module 26 may determine thecurrent time is within a time threshold (e.g., one day, one hour, oneminute, etc.) of the departure time associated with the movieactivity/event tag.

Suggestion module 26 of computing device 10 may cause UI module 20 tooutput, for display, a graphical indication associated with theinformation (450). For example, in response to determining the currenttime corresponds to the departure time of the movie, suggestion module26 may incorporate portions of the e-mail ticket confirmation and/orother data about the movie, navigation directions, etc. into a graphicalindication of an information card. Suggestion module 26 may send datathat represents the graphical indication of the information card to UImodule 20 to cause UI module 20 to present the information card at UID12.

In some examples, the computing system may determine the arrival timebased on a type of the event. In some examples, the computing system mayoutput, for transmission to the computing device, an indication of acredential associated with the event. The indication of the credentialmay be based at least in part on a type of the event.

In some examples, responsive to obtaining an indication that the currentlocation of the computing device is within a distance threshold of thefuture location, the computing system may output, for transmission tothe computing device, an indication of the credential associated withthe event. In some examples, responsive to obtaining an indication thata current time is within a threshold amount of time of the future time,the computing system may output, for transmission to the computingdevice, an indication of a credential associated with the event. In someexamples, responsive to obtaining an indication that a current time iswithin a threshold amount of time of the arrival time, the computingsystem may output, for transmission to the computing device, anindication of a credential associated with the event.

In some examples, the indication associated with the event may beoutputted for transmission to the computing device in response toobtaining, by the computing system, an indication that a current time iswithin a threshold amount of time of the departure time. In someexamples, the computing system may obtain the departure time bydetermining, based at least in part on traffic conditions along a travelroute from the current location of the computing device to the futurelocation.

In some examples, the computing system may receive from the computingdevice, a request for a credential associated with the event. Theindication associated with the event may be output for transmission inresponse to receiving the request and includes information indicative ofthe credential.

In some examples, the computing system may classify the informationincluded in the at least one previous communication by at least applyingone or more location tags and one or more time tags to the information.The computing system may obtain the indication of the future locationand the future time by determining that a location value of at least oneof the one or more location tags is associated with the current locationof the computing device and that a time value of at least one of the oneor more time tags is associated with a current time.

In some examples, the computing system may determine that the locationvalue of at least one of the one or more location tags is associatedwith the current location of the computing device and that the timevalue of at least one of the one or more time tags is associated withthe current time comprises by obtaining an indication that the locationvalue is within a threshold distance of the current location of thecomputing device and that the time value is within a threshold time ofthe current time.

In some examples, the computing system may obtain the informationassociated with the event by identifying, at least one keywordassociated with the event within a portion of the information includedin the one or more previous communications, wherein the at least onekeyword is based on a type of the event.

In some examples, the arrival time may be prior to the future time by anamount of time. The amount of time may be determined based at least inpart on the event.

In one or more examples, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over, as oneor more instructions or code, a computer-readable medium and executed bya hardware-based processing unit. Computer-readable media may includecomputer-readable storage media, which corresponds to a tangible mediumsuch as data storage media, or communication media including any mediumthat facilitates transfer of a computer program from one place toanother, e.g., according to a communication protocol. In this manner,computer-readable media generally may correspond to (1) tangiblecomputer-readable storage media, which is non-transitory or (2) acommunication medium such as a signal or carrier wave. Data storagemedia may be any available media that can be accessed by one or morecomputers or one or more processors to retrieve instructions, codeand/or data structures for implementation of the techniques described inthis disclosure. A computer program product may include acomputer-readable medium.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other medium that can be used to store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. Also, any connection is properly termed acomputer-readable medium. For example, if instructions are transmittedfrom a website, server, or other remote source using a coaxial cable,fiber optic cable, twisted pair, digital subscriber line (DSL), orwireless technologies such as infrared, radio, and microwave, then thecoaxial cable, fiber optic cable, twisted pair, DSL, or wirelesstechnologies such as infrared, radio, and microwave are included in thedefinition of medium. It should be understood, however, thatcomputer-readable storage media and data storage media do not includeconnections, carrier waves, signals, or other transient media, but areinstead directed to non-transient, tangible storage media. Disk anddisc, as used herein, includes compact disc (CD), laser disc, opticaldisc, digital versatile disc (DVD), floppy disk and Blu-ray disc, wheredisks usually reproduce data magnetically, while discs reproduce dataoptically with lasers. Combinations of the above should also be includedwithin the scope of computer-readable media.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated hardware and/or software modules. Also, the techniques couldbe fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

Various examples have been described. These and other examples arewithin the scope of the following claims.

What is claimed is:
 1. A method comprising: receiving, by one or moreprocessors of a computing device, at least one previous communicationassociated with a user of the computing device; determining, by one ormore of the processors, an event of interest to the user based onparsing the at least one previous communication, wherein the event ofinterest occurs at a future location and a future time, whereindetermining the event of interest includes determining the futurelocation, the future time, and additional information related to theevent of interest, and wherein the additional information is notexplicitly included in the at least one previous communication;subsequent to determining the event of interest: determining, by one ormore of the processors, a current location of the user of the computingdevice; and determining, by one or more of the processors, and based onthe current location of the user of the computing device and a currenttime: that the current time satisfies a time threshold relative to thefuture time of the event of interest, and that the current locationsatisfies a distance threshold relative to the future location of theevent of interest; generating, by one or more of the processors, agraphical indication for the event of interest, the graphical indicationincluding content that is based on the additional information; andresponsive to determining that the current time satisfies the timethreshold: causing, by one or more of the processors, the graphicalindication for the event of interest to be rendered at the computingdevice of the user.
 2. The method of claim 1, wherein causing thegraphical indication for the event of interest to be rendered at thecomputing device of the user is further based on determining that thecurrent location satisfies the distance threshold.
 3. The method ofclaim 1, wherein determining the additional information related to theevent of interest comprises determining a category for the event ofinterest; and wherein generating the graphical indication for the eventof interest comprises: including, by one or more of the processors,information related to the category as at least part of the content thatis based on the additional information.
 4. The method of claim 1,wherein determining the additional information related to the event ofinterest comprises determining an additional event that occurs at thefuture location related to the event of interest; wherein generating thegraphical indication for the event of interest comprises: including, byone or more of the processors, information related to the additionalevent as at least part of the content that is based on the additionalinformation.
 5. The method of claim 4, wherein the information relatedto the additional event comprises information that is based on anadditional category for the additional event, wherein the additionalcategory for the event of interest is distinct from a category for theevent of interest.
 6. The method of claim 4, wherein determining theadditional event that occurs at the future location related to the eventof interest is further based on one or more popularity metricsassociated with the additional event.
 7. The method of claim 1, whereingenerating the graphical indication for the event of interest furthercomprises: automatically populating, by one or more of the processors,fields of one or more information cards related to the event of interestwith the content that is based on the additional information.
 8. Themethod of claim 1, further comprising, responsive to determining thatthe current time satisfies the time threshold: causing, by one or moreof the processors, and in addition to the graphical indication, anaudible indication for the event of interest to be rendered at thecomputing device of the user.
 9. The method of claim 1, furthercomprising, subsequent to determining the event of interest further:receiving, by one or more of the processors, at least one additionalcommunication associated with the user of the computing device;determining, by one or more of the processors, a modification to theevent of interest to the user based on parsing the at least oneadditional communication, wherein the modification includes amodification to at least one of: the future location and the futuretime; and responsive to determining the modification to the event ofinterest: generating, by one or more of the processors, an additionalgraphical indication for the modification to the event of interest, theadditional graphical indication including content based on theadditional communication, and causing, by one or more of the processors,the additional graphical indication for the modification to the event ofinterest to be rendered at the computing device of the user.
 10. Acomputing device, comprising: at least one processor; and a memorycomprising instructions that, when executed, cause the at least oneprocessor to: receive at least one previous communication associatedwith a user of a computing device; determine an event of interest to theuser based on parsing the at least one previous communication, whereinthe event of interest occurs at a future location and a future time,wherein the instructions to determine the event of interest compriseinstructions to determine the future location, the future time, andadditional information related to the event of interest, and wherein theadditional information is not explicitly included in the at least oneprevious communication; subsequent to determining the event of interest:determine a current location of the user of the computing device; anddetermine, based on the current location of the user of the computingdevice and a current time: that the current time satisfies a timethreshold relative to the future time of the event of interest; generatea graphical indication for the event of interest, the graphicalindication including content based on the additional information; andresponsive to determining that the current time satisfies the timethreshold: cause the graphical indication for the event of interest tobe rendered at the computing device of the user; and cause, in additionto the graphical indication, an audible indication for the event ofinterest to be rendered at the computing device of the user.
 11. Thecomputing device of claim 10, further comprising instructions to,subsequent to determining the event of interest: determine, based on thecurrent location of the user of the computing device and the currenttime: that the current location satisfies a distance threshold relativeto the future location of the event of interest.
 12. The computingdevice of claim 11, wherein causing the graphical indication for theevent of interest to be rendered at the computing device of the user isfurther based on determining that the current location satisfies thedistance threshold.
 13. The computing device of claim 10, wherein theinstructions to determine the additional information related to theevent of interest further comprise instructions to determine a categoryfor the event of interest; and wherein the instructions to generate thegraphical indication for the event of interest further compriseinstructions to: include information related to the category as at leastpart of the content that is based on the additional information.
 14. Thecomputing device of claim 10, wherein the instructions to determine theadditional information related to the event of interest further compriseinstructions to determine an additional event that occurs at the futurelocation related to the event of interest; wherein the instructions togenerate the graphical indication for the event of interest furthercomprise instructions to: include information related to the additionalevent as at least part of the content that is based on the additionalinformation.
 15. The computing device of claim 14, wherein theinformation related to the additional event comprises information thatis based on an additional category for the additional event, wherein theadditional category for the event of interest is distinct from acategory for the event of interest.
 16. The computing device of claim14, wherein determining the additional event that occurs at the futurelocation related to the event of interest is further based on one ormore popularity metrics associated with the additional event.
 17. Thecomputing device of claim 10, wherein the instructions to generate thegraphical indication for the event of interest further compriseinstructions to: automatically populate fields of one or moreinformation cards related to the event of interest with the content thatis based on the additional information.
 18. A computer-readable storagemedium comprising instructions that, when executed, cause at least oneprocessor of a computing device to: receive at least one previouscommunication associated with a user of a computing device; determine anevent of interest to the user based on parsing the at least one previouscommunication, wherein the event of interest occurs at a future locationand a future time, wherein the instructions to determine the event ofinterest comprise instructions to determine the future location, thefuture time, and additional information related to the event ofinterest, wherein the instructions to determine the additionalinformation related to the event of interest comprise instructions todetermine an additional event that occurs at the future location relatedto the event of interest, and wherein the additional information is notexplicitly included in the at least one previous communication;subsequent to determining the event of interest: determine a currentlocation of the user of the computing device; and determine, based onthe current location of the user of the computing device and a currenttime: that the current time satisfies a time threshold relative to thefuture time of the event of interest; generate a graphical indicationfor the event of interest, the graphical indication including contentbased on the additional information, wherein the instructions togenerate the graphical indication for the event of interest comprisesinstructions to include information related to the additional event asat least part of the content that is based on the additionalinformation; and responsive to determining that the current timesatisfies the time threshold: cause the graphical indication for theevent of interest to be rendered at the computing device of the user.